/* Creación, terminación y control de procesos hijo a partir de un proceso padre */
# include <sys/types.h>
# include <sys/wait.h>
# include <unistd.h>
# include <stdlib.h>
# include <stdio.h>

int hijo(void);
void padre(void);

int main (void)
{
	int status;
	pid_t pid;

/* Creación de un proceso hijo */
	switch(pid=fork())
	{
		case (pid_t) -1:
			perror("fork");
			exit(EXIT_FAILURE);
		case (pid_t) 0:
			exit(hijo());
			break;
		default:
			padre();
/* pid_t wait(int *status): provoca una espera del proceso padre hasta que
cualquier proceso hijo finalice. La información del estado del proceso hijo se
almacena en status.*/
wait(&status);
			break;
	}
exit(EXIT_SUCCESS);
}

/* Declaración de las dos funciones que permiten identificar ambos procesos */
int hijo(void)
{
	int i;
	for(i=0;i<10;i++){
		printf("Hola soy el proceso hijo: %d\n",i);
	}
return 1;
}
void padre(void)
{
	printf("Hola soy el proceso padre\n");
}

